草庐IT

c++ - 虚拟的概念

全部标签

c++ - crt0 是否加载 msvcrt.dll?

我正在尝试弄清楚标准C函数(如printf())如何在Windows环境中加载到内存中。我知道crt0.obj准备堆栈,调用intmain(intargc,char**argv)然后使用main返回的退出代码退出进程。我还听说C标准函数位于一个名为msvcrt.dll的共享库中。我想知道crt0是否也加载msvcrt.dll或者是否有一个msvcrt.lib也由编译器自动链接。谢谢你,对不起我的英语:) 最佳答案 总会有一个运行时环境,例如msvcr80.dll(适用于Windows变体),在您安装环境时加载,不管它是什么,即MSV

c++ - Windows 虚拟内存和内核模式

我知道在32位架构中,内核模式虚拟内存映射在0x80000000和0xFFFFFFFF之间。它包含一些结构如EPROCESS,ETHREAD...等等,还有当前进程的页面目录和表。虽然尝试获取某个函数的虚拟地址是ntoskrnl让我们说“nt!NtReadFile”,但我发现它映射到内核虚拟地址0x89421130中。我尝试用随机指令在RET之后修补一些nop,当切换到另一个进程上下文时,我发现我输入的指令仍然存在。这是否意味着加载Ntoskrnl的虚拟内存在每个进程虚拟地址空间中保持不变?谢谢。 最佳答案 Doesthatmean

windows - Windows 8 特定多媒体键的虚拟键码是什么?

我有一个MicrosoftSculptErgonomicDesktop它有额外的功能键。另请参阅我关于SuperUser的问题,"Whatarethefunctionsofthemultimediakeys?".有一些用于charmbar功能的键,有些我还没有识别。由于Windows7没有这些功能,我想我可以编写一个应用程序来使用这些键做一些有用的事情。这些键的虚拟键码是什么? 最佳答案 我使用一个简单的测试应用程序自行解决了这个问题:F5=Search=1691132=VK_SHIFT+VK_LWIN+VK_F21F6=Share

c - 内核如何知道哪些驱动程序属于哪些外设?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion当内核需要向某个外设发送输出时,它如何知道使用哪个驱动程序?

python - 在 Windows 7 上将包安装到虚拟环境中

我习惯于在Mac或Linux机器上编程,在这些机器上将软件包安装到虚拟环境中相对简单。不幸的是,Windows似乎并非如此。我一直在尝试将lxml安装到64位Windows7机器上的虚拟环境中。首先我使用了pip(我的首选工具):(lxml_tutorial)PSC:\Users\spearsc\Documents\python_projects\lxml_tutorial>pipinstalllxmlDownloading/unpackinglxmlRunningsetup.py(path:c:\users\spearsc\appdata\local\temp\pip_build_s

c - 如果进程终止但系统继续运行, WriteFile() 会是原子的吗?

如果我的进程在随机时刻终止但操作系统继续正常运行,Windows会保证对WriteFile的个别调用吗?是原子的(又名全有或全无)?或者我可以获得部分/撕裂的写入?注意:我特意不征求有关如何练习防御性编码的建议。这是一个严格关于MicrosoftWindows操作系统本身行为的问题。要100%完美地一目了然,我们可以并且明确地确实相信用户代码的行为是正常的。没有没有未定义的行为或任何类似的行为。假定所有进程终止都是通过明确定义的行为发生的,例如未处理的异常或调用TerminateProcess,不是内存损坏等。另外,请特别注意这里不需要担心C++析构函数;这是C。我希望所有关于用户代码

c - InitializeCriticalSectionAndSpinCount 最优 SpinCount(用户态)

我不太了解InitializeCriticalSectionAndSpinCount的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683476(v=vs.85).aspx它说“您可以通过选择较小的旋转计数来显着提高性能......”但是,由于等待微调器比等待对象更快,因此让SpinCount尽可能高不是很有意义吗?我错过了什么?谢谢。(我在多线程应用程序使用的CDLL中使用它)这是临界区的代码,被大量线程不断调用:intg_slots[256]={0};...slot=256;EnterCriticalSec

windows - IIS 或任何文件夹服务器 2012 R2 中不存在 adfs 目录的虚拟或物理位置

我有一个完全可操作的联合身份验证服务器,AzureSynced、Office365Synced和本地。配置的每个部分都完美无缺。我遇到的问题是没有任何Web目录文件的踪迹,我查看了每个位置,虚拟目录在我的联合代理或联合服务器上不存在。我正在尝试编辑登录页面或创建新表单。这些文件在哪里?或者我如何创建它们以便联合服务器显示我创建的登录页面? 最佳答案 你找不到它们,因为它们不存在!ADFS3.0不使用IIS(因此没有页面)-它直接在http.sys上运行。您可以在一定程度上自定义它。引用:ADFS:Customisingthescre

c - 在c和windows中获取进程组的用户时间

在Unix中我可以调用times()不仅可以获取当前进程的运行时间,还可以获取整个进程组的运行时间。在Windows中,我可以调用GetProcessTimes()获取当前进程的时间。但是,文档似乎表明这不会返回整个进程组的运行时间。那么有什么方法可以获取进程的运行时间,以及它在Windows中的所有子进程? 最佳答案 正如Harry所说,这不能做到,至少不能直接做到,因为Windows不像Unix那样跟踪进程之间的父/子关系。但是,您可以通过为进程创建共享内存来解决这个问题,并让它们都在运行时更新该位置。在这里您可以找到更多信息d

c - 如何在C中设置用户输入字符的时间限制?

首先,抱歉我的英语不好。我正在使用windows.h中包含的GetTickCount()函数和conio.h中包含的getch()。我真正想要的是给用户输入字符的时间限制。如果时间限制失效,程序继续执行,跳过等待用户输入字符。charch='A';DWORDstart_time,check_time;start_time=GetTickCount();check_time=start+500;//GetTickCountreturnstimeinmiliseconds,soIadd500towaitinputforhalfasecond.while(check_time>GetTick